package com.yn.pet.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yn.pet.bus.entity.LocationRealtime;
import com.yn.pet.controller.pc.response.ImmediateLocationResponse;
import com.yn.pet.controller.pc.response.LocationRealtimeResponse;

import java.util.Date;
import java.util.List;

/**
 * 实时定位信息表(LocationRealtime)表服务接口
 *
 * @author makejava
 * @since 2025-07-09 12:00:47
 */
public interface LocationRealtimeService extends IService<LocationRealtime> {

    /**
     * 查询实时信息定位列表_某设备的最新定位信息
     * @param deviceId 设备ID
     * @return 实时信息定位列表_某设备的最新定位信息
     */
    LocationRealtime getLatestLocationByDeviceId(Long deviceId);

    /**
     * 查询实时信息定位列表_某一天的定位信息
     * @param deviceId 设备ID
     * @param time  时间
     * @param locationTypes 定位类型
     * @return List<LocationRealtimeResponse>
     */
    List<LocationRealtimeResponse> listInfoByTime(String time, Long deviceId, String locationTypes);

    /**
     * 获取实时信息_立即定位
     * @param deviceId 设备ID
     * @return ImmediateLocationResponse
     */
    Boolean getLocationImmediate(Long deviceId,String sendTimeStr);

    /**
     * 根据位置id获取设备实时位置
     * @param locationId 位置id
     * @return LocationRealtime
     */
    LocationRealtime getByLocationId(Long locationId);

    /**
     * 获取指定时间的那一天指定设备位置信息
     * @param time  时间
     * @param deviceId 设备id
     * @return List<LocationRealtime>
     */
    List<LocationRealtime> listOneDayLocation(Date time, Long deviceId);

    /**
     * 立即定位
     * @param deviceId 设备id
     */
    String getLocation(Long deviceId);
}

